package com.pan.util; // 建议放在认证相关的包下

import com.pan.dao.UserDAO;
import com.pan.dao.UserDAOImpl;
import com.pan.dao.User;
import java.sql.Timestamp;

public class CheckAuth {
    // 使用单例的 UserDAO
    private static final UserDAO userDAO = UserDAOImpl.getInstance();

    public static boolean checkToken(String token) {
        if (token == null || token.isEmpty()) {
            return false;
        }

        // 从数据库查询 Token 对应的用户
        User user = userDAO.getUserByToken(token);
        if (user == null) {
            return false; // Token 不存在
        }

        // 检查 Token 是否过期
        Timestamp now = new Timestamp(System.currentTimeMillis());
        Timestamp expiry = user.getTokenExpiry();
        if (expiry == null || expiry.before(now)) {
            // 如果过期，清除数据库中的 Token
            try {
                userDAO.deleteToken(user.getId());
            } catch (Exception e) {
                e.printStackTrace();
            }
            return false;
        }

        return true; // Token 有效
    }
}